/*
*
==============================================================================
*  Name        : 
*  Part of     : Omen Game Engine
*  Description : 
*  Version     : 1.0
*
*  Copyright (c) 2013 Lauri Kortevaara.
* 
==============================================================================
*/

#ifndef IOmen_INPUTSERVER_H
#define IOmen_INPUTSERVER_H

#include "OmenConfig.h"
#include "IOmenInputDriver.h"
#include "IOmenInputServer.h"

namespace Omen {

  /// <summary>Manages Input related stuff for the engine</summary>
  class OMEN_API IInputServer {
    public: 
        virtual void addInputDriver( Omen::IInputDriver* pIInputDriver) = 0;    /// <summary>Allows plugins to add new Input drivers</summary>
        
        virtual size_t getDriverCount() const = 0;                                        /// <summary>Gets the total number of registered Input drivers</summary>
   
        virtual IInputDriver &getDriver(size_t Index) = 0;                                /// <summary>Accesses a driver by its index</summary>
        
        virtual void handleInput() const = 0;
  };

  // ----------------------------------------------------------------------- //

} // namespace Omen

#endif // IOmen_INPUTSERVER_H
